---
title: Python Flask
sidebar_label: Python Flask
---

<table>
    <tr>
        <td width="100px">
            <img width="100px" src="/docs/img/tech/flask.svg" alt="phyton logo" className="hideonlight"/>
            <img width="100px" src="/docs/img/tech/flasklight.svg" alt="phyton logo" className="hideondark"/>
        </td>
        <td>
            <a href="https://flask.palletsprojects.com/en/3.0.x/" target="_blank">Flask</a> is a lightweight and easy-to-use microframework for <a href="https://www.python.org">Python</a> web development.
            Get started integrating authentication to your Flask API Application by checking out our <a href="https://github.com/zitadel/example-api-python3-flask" target="_blank">example-api-python3-flask</a> Example.
        </td>
    </tr>
</table>


### Resources
- [Example App Repository](https://github.com/zitadel/example-api-python3-flask)
- [API APP Step-By-Step Guide](/docs/examples/secure-api/python-flask)
- [Frontend with backend API](https://github.com/zitadel/example-quote-generator-app): A simple web application using a React front-end and a Python back-end API, both secured using ZITADEL
- [Fine-grained authorization](https://github.com/zitadel/example-fine-grained-authorization): Leverage actions, custom metadata, and claims for attribute-based access control

### Flask SDK

ZITADEL does not provide a Python Flask specific SDK.
But you can integrate ZITADEL to your application by using any OIDC Library such as [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc).

Check out our [Example Application](/docs/sdk-examples/angular#example-application)


### Examples Application

What does the API Application Example include:
- REST API Application secured with OAuth2
- Public Endpoint: Accessible without authentication
- Private Endpoint: Accessible with a token
- Administrator Endpoint: Accessible with a token of a user with admin role

[Example API App](https://github.com/zitadel/example-api-python3-flask)

### Step-By-Step Guide

After completing the Step-By-Step Guide you will have:
1. Example REST API checking tokens against ZITADEL with OAuth2
2. Public Endpoint accessible by any user
3. Private Endpoint accessible by authenticated user
4. Private Endpoint accessible by user with role 'admin'
5. Correct setup for your application in ZITADEL

[API APP Step-By-Step Guide](/docs/examples/secure-api/python-flask)